/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package core;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import javax.swing.JTable;
import util.JTableUtil;

/**
 *
 * @author Maniek
 */
public class ObslugaStatystyk {
    
    
   public JTable stat1() throws Exception{ // --1.widok zwracający 10 najtańszych leków
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM CheapesDrugs");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 1, zwracam sie");
        }
    return null;
    }
   
    public JTable stat2() throws Exception{ // --2.widok zwracający 10 najtańszych szczepionek
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM CheapestVaccine");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 2, zwracam sie");
        }
    return null;
    }
    
    public JTable stat3() throws Exception{ // --3.widok zwracający średnią cenę leku dla producenta
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM ProducersAVG");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 3, zwracam sie");
        }
    return null;
    }
    
    public JTable stat4() throws Exception{ // --4.widok zwracający ilość pacjentów na doktora
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM DoctorsPatients");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 4, zwracam sie");
        }
    return null;
    }
    
    public JTable stat5(float cena1, float cena2) throws Exception{ //--5.parametryzowany widok zwracający leki z przedziału ceny.
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM DrugsPriceView ("+cena1+","+cena2+")");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 5, zwracam sie");
        }
    return null;
    }
    
    public JTable stat6() throws Exception{ // --6.widok zwracający tabele statystyki dla przychodni
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM PrzychodniaStats()");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 6, zwracam sie");
        }
    return null;
    }
    
    public JTable stat7() throws Exception{ // --7. widok zwracajacy ranking pacjentów najczęściej odwiedziających przychodnie
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM FrequentlyVisits");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 7, zwracam sie");
        }
    return null;
    }
    
    public JTable stat8() throws Exception{ // --8. widok zwracajacy ilosc odwiedzin w poszczególnych dniach tygodnia
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM WeekStats()");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 8, zwracam sie");
        }
    return null;
    }
    
    public JTable stat9(String data) throws Exception{ // --9. widok zwracający ilość odwiedzin(poszczególnych typów) o podanej dacie
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM VisitsByDate('"+data+"')");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 9, zwracam sie");
        }
    return null;
    }
    
    public JTable stat10() throws Exception{ //--10. widok ranking ilości przyjętych recept dla pacjeta
        try {
            Statement stmn = SqlConnection.getInstance().getSqlConnection().createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmn.execute("SELECT * FROM PatientsRecipeRank");
            ResultSet rs = stmn.getResultSet();  
            return JTableUtil.createTable(rs);
        } catch (SQLException ex ) {
            System.out.println("Statystyki - widok 10, zwracam sie");
        }
    return null;
    }
}
